package com.jt.vo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * 作用:实现前后端的交互
 * @author :Colin
 * @version 创建时间: 2021/8/4 11:24
 */
@Data
@Accessors(chain = true)
@NoArgsConstructor//无参构造
@AllArgsConstructor//全参构造
public class SysResult implements Serializable {//规范性的写法,以后传递参数方便
    private Integer status;//状态码 200,201
    private String msg;//服务器返回的提示信息
    private Object data;//服务器返回的业务数据,object占位


    //为了用户使用VO对象更加方便,重载一些方法,简化程序的调用
    public static SysResult fail(){

        return new SysResult(201,"业务执行失败",null);
    }
    //1.不带参数的正确返回.
    public static SysResult success(){
        return new SysResult(200,"服务器处理成功",null);
    }
    //2.带返回值的正确返回.用户传递什么,返回值就是什么
    public static SysResult success(Object data){

        return new SysResult(200,"服务器处理成功",data);
    }

    //3.带返回值,携带提示信息
    public static SysResult success(String msg,Object data){

        return new SysResult(200,msg,data);
    }
    //4.这样写不对,重载方法,参数不要耦合,和上面的Object data耦合
/*    public static SysResult success(String msg){
        return new SysResult(200,msg,null);
    }*/
}
